Method and apparatus for connecting a caller previously diverted to voicemail

ABSTRACT

Disclosed is a method and apparatus for enabling communication between a first party and a second party. The method and apparatus determine that the second party is calling the first party while the first party is leaving a message on the voicemail of the second party. The message is then aborted and the first party is connected to the second party.

This application is a continuation of U.S. patent application Ser. No.13/490,722, filed Jun. 7, 2012, which is a continuation of U.S. patentapplication Ser. No. 11/507,687, filed Aug. 22, 2006 and issued as U.S.Pat. No. 8,218,743 on Jul. 10, 2012, all of which are entirelyincorporated herein by reference.

BACKGROUND OF THE INVENTION

The present invention relates generally to telephony and morespecifically to enabling direct communication between two parties afterone party has been diverted to voicemail.

When a first individual calls a second individual and the secondindividual does not answer the telephone within a predetermined amountof time, the first individual is typically connected to the secondindividual's voicemail. Such diversion of a call to voicemail may occur,for example, when the second individual is not present to answer his orher telephone. Alternatively, the second individual may have difficultylocating his or her wireless telephone before the first individual isconnected to voicemail.

While the first individual is leaving a message on the secondindividual's voicemail, the second individual may then become availableto talk to the first individual. For example, the second individual maywalk into his or her home while the first individual is leaving avoicemail message on the second individual's voicemail. As a secondexample, the second individual may locate his or her wireless telephonewhile the first individual is leaving a voicemail message on the secondindividual's voicemail. As a third example, the second individual mayreceive a call from the first individual while on another call. Thesecond individual may look at the caller identification information(e.g., displayed by a call waiting service) and decide, at that time,not to take the new call.

In any of these examples, if the second individual determines (e.g.,with caller identification) that the first individual called the secondindividual, then the second individual may then call the firstindividual back while the first individual is leaving a voicemailmessage on the second individual's voicemail. In a typical moderntelephony system, the second individual typically either receives a busysignal or finds himself connected to the first individual's voicemail.This may result in crossed voicemails—the second individual is leaving avoicemail message on the first individual's voicemail while the firstindividual is simultaneously leaving a voicemail message on the secondindividual's voicemail.

There remains a need to better handle the situation in which a secondindividual wants to speak to a first individual after the firstindividual is already connected to the second individual's voicemail.

BRIEF SUMMARY OF THE INVENTION

In accordance with the principles of the present invention, a node in atelephone network enables communication between a first party and asecond party at the same time as the first party is leaving a voicemailwith the second party. The node recognizes that the two people aretrying to reach each other. Once this determination is made, the nodeaborts the voicemail message and directly connects the first party withthe second party. In one embodiment, the node provides a notification(e.g., a personalized announcement) that it is connecting the twoparties.

In one embodiment, the node stores information associated with the firstor second party, such as the party's telephone number, in memory or in adatabase. The node can then compare the stored information toinformation obtained when the second party calls the first party. Ifthere is a match, then the node has determined that the second party iscalling the first party (i.e., the party that just previously called thesecond party and is leaving a voicemail message). The node then abortsthe voicemail message being left and connects the first party with thesecond party. In one embodiment, the node erases the voicemailmessage(s). In one embodiment, all calls to or from the second partytraverse through the node.

These and other advantages of the invention will be apparent to those ofordinary skill in the art by reference to the following detaileddescription and the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a timing diagram of the steps performed to connect a firstparty who has been previously diverted to a second party's voicemail tothe second party;

FIG. 1B is a high level flowchart showing the steps performed by a nodein accordance with an aspect of the invention to connect party B toparty A after party A has been connected to party B's voicemail;

FIG. 2 shows a flowchart of steps performed to connect the second partyto the first party after the first party is in the process of leaving avoicemail for the second party in accordance with the present invention;

FIG. 3 shows a more detailed flowchart of steps performed by the firstparty to connect to the second party after the first party has beenconnected to the second party's voicemail in accordance with the presentinvention; and

FIG. 4 shows a high level block diagram of a computer system which maybe used in an embodiment of the invention.

DETAILED DESCRIPTION

FIG. 1A is a timing diagram of the steps performed to connect a secondparty to a first party who has been previously diverted to voicemail.The first party (i.e., party A) places a call to the second party (i.e.,party B) at a time t₀ 104 in step 106. Party B does not answer thetelephone. This may occur when party B is not home or cannot locateparty B's wireless telephone in time to answer the telephone call. As aresult, party A is diverted to party B's voicemail at time t₁ 108 instep 110. Party A leaves party B a voicemail message on party B'svoicemail.

While party A is leaving party B a voicemail message, party B may becomeavailable to return party A's telephone call. Party B becomes availableto return party A's call by, for example, coming home and determiningthat party A just called or by locating party B's wireless telephone anddetermining that party A just called. In one embodiment, party B usescaller identification (i.e., caller ID) (or any other type of callidentifier) to determine that party A just called.

Party B tries to return party A's call but party A is leaving avoicemail message for party B at that time (t₂ 112) in step 114. Party Bmay be directed to party A's voicemail or may receive a busy signalbecause party A is leaving a voicemail message for party B on party B'svoicemail. Party A's telephone uses caller ID to identify the caller asparty B. At this moment, the two parties are unable to connect becauseparty A is leaving a voicemail message for party B.

A node detects that party A and party B are trying to reach each otherand takes an action to connect them. The node determines that party Ahas just called party B and is currently leaving party B a voicemail andparty B is currently calling party A back.

If there is a match between the telephone number identified by party A'scaller ID and the telephone number that party A just previously called(i.e., party B's telephone number) at time t₃ 116 in step 118, then thevoicemail message is aborted and party B is connected with party A attime t₄ 120 in step 122. If the system didn't detect the condition fastenough, both party A and party B may be leaving voicemail messages foreach other. In this case, both messages would be aborted. Alternatively,party B may receive a busy signal when calling party A while party A isleaving party B a message. In one embodiment, each time (e.g., time t₄120) is extremely close to (e.g., one second after) the previous time(e.g., time t₃ 116).

The service of connecting the second party to the first party (i.e.,enabling direct (i.e., person to person) communication between the firstand second parties over the telephone network) after the first party isdiverted to the second party's voicemail can be applied by any telephonenetwork, such as Public Switched Telephone Network (PSTN), wireless,VoIP, etc. In particular, many components within any type of telephonenetwork may provide the capabilities to offer the service of connectinga caller previously diverted to voicemail with another caller.

FIG. 1B is a high level flowchart showing the steps performed by a nodein accordance with an aspect of the invention to connect party B toparty A after party A has been connected to party B's voicemail. First,party A calls party B in step 150. Party B's line is busy or no answeris received in step 155. Party A then determines in step 160 whetherParty B has voicemail. If not, then party A ends the call in step 165.If Party B does have voicemail, then party A starts to leave a messagefor party B in step 165. Party B then realizes that he had a call fromparty A and calls party A back in step 170. Party A's line is busy orparty B is directed to party A's voicemail because party A is currentlyleaving a voicemail for party B in step 175.

The node then determines whether party B is getting a busy signal orvoicemail because party A is currently leaving a voicemail for party Bin step 180. If not, then no action is taken and the call continues instep 185. If so, then the node connects party A and party B in step 190.In one embodiment, the node may also provide an announcement to one orboth parties that they are being connected. Steps 180-190 are enclosedin a dashed box indicating that these steps are being performed by thenode in accordance with an aspect of the present invention.

FIG. 2 shows a flowchart of steps that are performed in accordance withan aspect of this invention to connect party B to party A after party Ahas been connected to party B's voicemail. FIG. 2 represents the case inwhich party B is a subscriber to the service described above.

First, party B calls party A in step 205. Party B's telephone servicestores party A's information, such as in SIP messaging, memory or adatabase (e.g., in the memory of a component of the telephony network,such as in an application server's memory in a Voice over InternetProtocol (VoIP) network) in step 210. In step 215, the telephone serviceprovider of party B (i.e., a component or node in the telephone network)determines whether a call was received from party A just before party Bmade the call to party A in step 205. If not, the call continues in step217 and party B connects to party A (e.g., connects to party A orconnects to party A's voicemail).

If a call was received from party A just prior to party B's call toparty A, then party B's telephone service provider determines whetherparty A is currently leaving party B a voicemail message on party B'svoicemail in step 220. If party A is not currently leaving party B avoicemail message, then the call continues in step 217. If, however,party A is currently leaving party B a voicemail message in step 220,then the voicemail message being left by party A is aborted and the callbetween party A and party B is connected in step 225.

FIG. 3 shows a more detailed flowchart of steps performed by party A toconnect to party B when party A is diverted to party B's voicemail inaccordance with the present invention.

First, party A calls party B in step 305. As part of this initial call,party A's telephone (and/or telephone service provider) stores party B'sinformation, such as party B's telephone number, in memory in step 310.Party A's telephone or telephone service provider (or a node in thetelephone network) then determines, in step 315, whether party A hasbeen directed to party B's voicemail. If not, the call continues in step317.

If party A has been directed to party B's voicemail in step 315, thenparty A typically leaves a voicemail message in step 320. While party Ais leaving a voicemail message on party B's voicemail, party A'stelephone or telephone service provider (or a node) checks whether acall is received in step 325. If not, then party A continues to leave avoicemail message in step 320.

If a call is received in step 325, party A's telephone service provider(or node) then determines in step 330 whether the caller ID of theincoming call matches the information stored in step 310 for party B.During this time, party B may be directed to party A's voicemail (i.e.,crossing voicemail messages), may receive a busy signal, or may notreceive an answer to the call.

If the caller ID does not match the stored information for party B instep 330, party B is diverted to (or continues the message in) voicemailin step 332. If the caller ID of the incoming call matches theinformation stored in step 310 for party B, the voicemail message beingleft by party A (and/or party B) is aborted and party A is connected toparty B in step 335.

In one embodiment, a subscriber of the service described above canenable or disable the service for their account, for instance, initiallywhen the subscriber signs up with the telephone service provider oranytime thereafter (e.g., by calling the telephone service provider).

In one embodiment, the service plays an announcement to the party (e.g.,party B) that made a call back to the previous caller (e.g., party A).The announcement can be, for example, “You are being joined to theperson that you were calling,” before party A is joined with party B.

The previous description describes the present invention in terms of theprocessing steps required to implement an embodiment of the invention.These steps may be performed by an appropriately programmed computer,the configuration of which is well known in the art. An appropriatecomputer may be implemented, for example, using well known computerprocessors, memory units, storage devices, computer software, and othernodes. A high level block diagram of such a computer is shown in FIG. 4.Computer 400 contains a processor 404 which controls the overalloperation of computer 400 by executing computer program instructionswhich define such operation. The computer program instructions may bestored in a storage device 408 (e.g., magnetic disk) and loaded intomemory 412 when execution of the computer program instructions isdesired. Computer 400 also includes one or more interfaces 416 forcommunicating with other devices (e.g., locally or via a network).Computer 400 also includes input/output 424 which represents deviceswhich allow for user interaction with the computer 400 (e.g., display,keyboard, mouse, speakers, buttons, etc.). In one embodiment, computer400 represents a node (e.g., an application server) in a telephonynetwork (e.g., a VoIP network). One skilled in the art will recognizethat an implementation of an actual computer will contain other nodes aswell, and that FIG. 4 is a high level representation of some of thenodes of such a computer for illustrative purposes. In addition, oneskilled in the art will recognize that the processing steps describedherein may also be implemented using dedicated hardware, the circuitryof which is configured specifically for implementing such processingsteps. Alternatively, the processing steps may be implemented usingvarious combinations of hardware and software. Also, the processingsteps may take place in a computer or may be part of a larger machine.

The foregoing Detailed Description is to be understood as being in everyrespect illustrative and exemplary, but not restrictive, and the scopeof the invention disclosed herein is not to be determined from theDetailed Description, but rather from the claims as interpretedaccording to the full breadth permitted by the patent laws. It is to beunderstood that the embodiments shown and described herein are onlyillustrative of the principles of the present invention and that variousmodifications may be implemented by those skilled in the art withoutdeparting from the scope and spirit of the invention. Those skilled inthe art could implement various other feature combinations withoutdeparting from the scope and spirit of the invention.

The invention claimed is:
 1. An apparatus for enabling communicationbetween a first party and a second party comprising: a processor; and amemory to store computer program instruction, the computer programinstructions when executed on a processor, cause the processor toperform operations comprising: determining that the second party iscalling the first party while the first party is leaving a firstvoicemail message for the second party; determining that the secondparty is leaving a second voicemail message for the first party whilethe first party is leaving the first voicemail message for the secondparty; and in response to determining that the second party is leaving asecond voicemail message for the first party while the first party isleaving the first voicemail message for the second party, connecting thesecond party with the first party to enable direct communication betweenthe second party and the first party.
 2. The apparatus of claim 1, theoperations further comprising: determining that the second party iscalling the first party while the first party is leaving the firstvoicemail message for the second party, by matching call identifierinformation associating the second party with stored informationindicating a telephone number that was previously called by the firstparty.
 3. The apparatus of claim 2, the operations further comprising:storing the information indicating the telephone number that waspreviously called by the first party.
 4. The apparatus of claim 3,wherein the call identifier information further comprises a telephonenumber associated with the second party.
 5. The apparatus of claim 1,the operations further comprising: directing a call from the first partyto the second party before the first party is leaving the firstvoicemail message for the second party.
 6. The apparatus of claim 1, theoperations further comprising: aborting the first voicemail message andthe second voicemail message.
 7. The apparatus of claim 6, whereinaborting further comprises erasing the first voicemail message and thesecond voicemail message.
 8. A non-transitory computer readable mediumstoring computer program instructions for enabling communication betweena first party and a second party, which, when executed on a processor,cause the processor to perform operations comprising: determining thatthe second party is calling the first party while the first party isleaving a first voicemail message for the second party; determining thatthe second party is leaving a second voicemail message for the firstparty while the first party is leaving the first voicemail message forthe second party; and in response to determining that the second partyis leaving a second voicemail message for the first party while thefirst party is leaving the first voicemail message for the second party,connecting the second party with the first party to enable directcommunication between the second party and the first party.
 9. Thenon-transitory computer readable medium of claim 8, wherein determiningthat the second party is calling the first party while the first partyis leaving the first voicemail message for the second party furthercomprises: matching call identifier information associating the secondparty with stored information indicating a telephone number that waspreviously called by the first party.
 10. The non-transitory computerreadable medium of claim 9 further comprising: storing the informationindicating the telephone number that was previously called by the firstparty.
 11. The non-transitory computer readable medium of claim 9wherein the call identifier information further comprises a telephonenumber associated with the second party.
 12. The non-transitory computerreadable medium of claim 8 further comprising: directing a call from thefirst party to the second party before the first party is leaving thefirst voicemail message for the second party.
 13. The non-transitorycomputer readable medium of claim 8, further comprising: aborting thefirst voicemail message and the second voicemail message.
 14. Thenon-transitory computer readable medium of claim 13 wherein abortingfurther comprises: erasing the first voicemail message and the secondvoicemail message.